function fig = PlotXe129T1Rho(obj, drvData)
    if nargin == 1
        drvData = obj.Xe129T1Rho;
    end
    
    drvSignalR = drvData.signal.getNodeData(1);
    drvSignalTheta = drvData.signal.getNodeData(2);

    fig = figure( 'Name', sprintf('Xe129 T1Rho [%s]', datestr(drvData.timestamp)), 'WindowStyle', 'Docked'); 
    
    ax1 = subplot(2, 2, 1, 'Parent', fig);
    plot(ax1, drvSignalR.x, drvSignalR.y, 'r.-')
    legend(ax1, 'RF Magnetometer demodR', 'Location', 'best');
    xlim(ax1, minmax(drvSignalR.x(:)'));
    xlabel(ax1, 'Time (s)'); ylabel(ax1, 'demodR (V)');
    grid on
    
    ax2 = subplot(2, 2, 2, 'Parent', fig);
    plot(ax2, drvSignalTheta.x, drvSignalTheta.y, 'b.-');
    xlabel(ax2, 'Time (s)'); ylabel(ax2, 'demodTheta (degree)');
    legend(ax2, 'RF Magnetometer demodTheta', 'Location', 'best');
    title(ax2, sprintf('Calibration Amplitude = %3.2f V', drvData.calibration));
    xlim(ax2, minmax(drvSignalTheta.x(:)')); grid on;
    
    ax3 = subplot(2, 2, [3 4], 'Parent', fig);
    plot(ax3, drvData.data_t1rho.x, drvData.data_t1rho.y, 'bo-', drvData.data_t1rho.x, drvData.fitting.result(drvData.data_t1rho.x), 'r-'); grid on;
    xlabel('Time (s)'); ylabel('Xe Field (nT)'); xlim(minmax(drvData.data_t1rho.x(:)'));
    title(sprintf('T_{1\rho} = %3.1f s, b_{max} = %3.1f nT, b_0=%3.1f nT', drvData.fitting.result.tau, drvData.fitting.result.a, drvData.fitting.result.c));
end

